From 3f4e372b2817ce29815d4a20e214489def61d069 Mon Sep 17 00:00:00 2001 From: "cl349@firebug.cl.cam.ac.uk" Date: Wed, 18 May 2005 17:47:18 +0000 Subject: [PATCH] bitkeeper revision 1.1452.1.1 (428b7fa6MuhQh_l2UNUJg7zzlnM1pw) XendDomain.py: Simplify domain restart code. Signed-off-by: Christian Limpach --- tools/python/xen/xend/XendDomain.py | 35 ++++++----------------------- 1 file changed, 7 insertions(+), 28 deletions(-) diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index 2d049c31d4..1d3bd4a6b2 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -80,10 +80,6 @@ class XendDomain: domain_by_id = {} domain_by_name = {} - """Table of domains to restart, indexed by domain id.""" - restarts_by_id = {} - restarts_by_name = {} - """Table of pending domain shutdowns, indexed by domain id.""" shutdowns_by_id = {} @@ -181,8 +177,6 @@ class XendDomain: dominfo = XendDomainInfo.vm_recreate(savedinfo, info) self.domain_by_id[dominfo.id] = dominfo self.domain_by_name[dominfo.name] = dominfo - if dominfo.restart_pending(): - self.domain_restart_add(dominfo) return dominfo def _add_domain(self, info, notify=True): @@ -526,38 +520,25 @@ class XendDomain: return restart = (force and reason == 'reboot') or dominfo.restart_needed(reason) if restart: + log.info('Scheduling restart for domain: name=%s id=%s', + dominfo.name, dominfo.id) + eserver.inject("xend.domain.restart", + [dominfo.name, dominfo.id, "schedule"]) dominfo.restarting() - self.domain_restart_add(dominfo) else: - self.domain_restart_cancel(dominfo.id) - - def domain_restart_add(self, dominfo): - self.restarts_by_name[dominfo.name] = dominfo - self.restarts_by_id[dominfo.id] = dominfo - log.info('Scheduling restart for domain: name=%s id=%s', dominfo.name, dominfo.id) - eserver.inject("xend.domain.restart", - [dominfo.name, dominfo.id, "schedule"]) - - def domain_restart_cancel(self, id): - """Cancel any restart scheduled for a domain. - - @param id: domain id - """ - dominfo = self.restarts_by_id.get(id) or self.restarts_by_name.get(id) - if dominfo: log.info('Cancelling restart for domain: name=%s id=%s', dominfo.name, dominfo.id) eserver.inject("xend.domain.restart", [dominfo.name, dominfo.id, "cancel"]) dominfo.restart_cancel() - del self.restarts_by_id[dominfo.id] - del self.restarts_by_name[dominfo.name] def domain_restarts(self): """Execute any scheduled domain restarts for domains that have gone. """ doms = self.xen_domains() - for dominfo in self.restarts_by_id.values(): + for dominfo in self.domain_by_id.values(): + if not dominfo.restart_pending(): + continue print 'domain_restarts>', dominfo.name, dominfo.id info = doms.get(dominfo.id) if info: @@ -565,8 +546,6 @@ class XendDomain: print 'domain_restarts> still runnning: ', dominfo.name continue # Remove it from the restarts. - del self.restarts_by_id[dominfo.id] - del self.restarts_by_name[dominfo.name] print 'domain_restarts> restarting: ', dominfo.name self.domain_restart(dominfo) -- 2.30.2